#ifndef CHARACTER_H
#define CHARACTER_H


#include <map>
#include <string>
#include <vector>


class Character
{
public:

	static class Type
	{
	public:
		static void add(std::shared_ptr<Type> type);
		static std::shared_ptr<Type> get(std::string name);

		void        addStratModelID(std::string factionID, std::string modelID);
		std::string getStratModelID(std::string factionID, int level);

		static int defaultStartingActionPoints;

		std::string name;		
		int wageBase;
		int startingActionPoints;

	private:
		static std::map<std::string, std::shared_ptr<Type>> nameMap;

		std::map<std::string, std::vector<std::string>> stratModelMap;
	};

	Character();

	std::string name;
	std::shared_ptr<Type> type;
	
	int age;
	int x;
	int y;

	int level;
};


#endif